Film grain forms in motion picture images during the process of development. Film grain is clearly noticeable in high definition (HD) images and becomes a distinctive cinema trait that should be preserved through the whole image processing and delivery chain. Nevertheless, film grain preservation is a challenge for current encoders since compression gains related to temporal prediction cannot be exploited. Due to the random nature of the grain, visually lossless encoding is only achieved at very high bit-rates. Lossy encoders tend to suppress the film grain when filtering the high frequencies typically associated with noise and fine textures.
Film Grain Management (FGM) has been presented as a new tool that allows encoding the grain in motion picture film by means of a parameterized model to be transmitted as parallel information. To support FGM, the Fidelity Range Extension (FRExt) Amendment to the ITU-T Rec. H.264 | ISO/IEC 14496-10 | MPEG-4 AVC |Joint Video Team (JVT) standard (hereinafter the “H.264 standard”) has defined a Film Grain Characteristics Supplemental Enhancement Information (SEI) message. The SEI message describes the film grain characteristics regarding attributes such as size and intensity, and allows a video decoder to simulate the film grain look onto the decoded picture. The H.264 standard specifies which parameters are present in the film grain SEI message, how to interpret the parameters, and the syntax for encoding the SEI message in binary format. However, the H.264 standard does not specify the exact procedure to simulate film grain upon reception of the film grain SEI message. It is to be appreciated that FGM can be used jointly with any other video coding method since it utilizes parallel information, transmitted from an encoder, that does not affect the decoding process.
In FGM, the encoder models the film grain of the video sequence and the decoder simulates the film grain according to the received information. The encoder can use FGM to enhance the quality of the compressed video when there is difficulty retaining the film grain. Additionally, the encoder has the option of removing or attenuating the grain prior to encoding in order to reduce the bit-rate.
Film grain simulation aims at synthesizing film grain samples that simulate the look of original film content. Unlike film grain modeling, which is entirely performed at the encoder, film grain simulation is performed at the decoder. Film grain simulation is done after decoding the video stream and prior to display. Images with added film grain are not used within the decoding process. Being a post-processing method, synthesis of simulated film grain on the decoded images for the display process is not specified in the H.264 standard. The film grain simulation process includes the decoding of film grain supplemental information, transmitted in a film grain SEI message as specified by the Fidelity Range Extensions Amendment of the H.264 standard.
Thus, it is to be appreciated that film grain simulation is a relatively new technology used in post-production to simulate film grain on computer-generated material, as well as during restoration of old film stocks. For these types of applications, there exists commercial software in the market like Cineon®, from Eastman Kodak Co, Rochester, N.Y., and Grain Surgery™, from Visual Infinity. These tools generally operate based on user interaction and are complex to implement, which makes them unsuitable for real-time video coding applications. Furthermore, none of these tools has the capability to interpret a film grain SEI message as specified by the H.264 standard.
A description will now be given regarding pseudo-random number generator (PRNG) seed initialization in accordance with the prior art.
In previous techniques to perform film grain simulation on HD DVD systems, bit-accuracy was only achieved during normal play mode, that is, when the film grain simulation process started at the beginning of the sequence and was not interrupted during the whole decoding processes. During trick mode play, the PRNG used for film grain simulation could be in a different state than during normal play, resulting in a non-bit-accurate film grain reproduction. This means that the same picture could have different grain depending on whether it has been decoded during normal play or during a trick mode play (like fast forward or jump). While this may not always be an issue from a visual quality standpoint (even if the film grain is not bit-accurate, often it visually looks the same), it becomes relevant for test software or hardware implementations because without bit-accuracy it is impossible to compare an obtained result against a reference result.
Thus, in the previous techniques, the difference in film grain reproduction was due to the different state of the PRNG at a given frame depending on how that frame was reached (normal play or trick mode play). This means that even if the same parameters are used on a given picture, if the state of the PRNG is not the same, then different grain is inserted.
Based on the aforementioned Supplemental Enhancement Information (SEI) message, several prior art approaches have been developed relating to specifications for simulating film grain. These prior art approaches target high quality applications and provide large flexibility in the simulation of different film grain patterns on both luma and chroma color components with a small increase in computational cost. However, these prior art approaches do not provide a bit-accurate and H.264 standard compliant film grain simulation process.
Accordingly, it would be desirable and highly advantageous to have methods and apparatus for bit-accurate seed initialization for a pseudo-random number generator (PRNG) used to simulate film grain in a video system. Such methods and apparatus should allow for film grain simulation that is both bit-accurate and H.264 standard compliant.